﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sistema_Totem.Logica.Clases;
using System.Data;

namespace Sistema_Totem.Vista.Usuarios
{
    public partial class ListarUsuariosConsultar : System.Web.UI.Page
    {
        Usuario usuario = new Usuario();
        List<Usuario> listaUser = new List<Usuario>();

        protected void Page_Load(object sender, EventArgs e)
        {
            //if (Session["tipo_usuario"].ToString() != "Administrador")
            //{
            //    Response.Redirect("Login1.aspx");
            //}

            if (!IsPostBack)
            {
                GridViewConsultarUsuario.DataSource = CargarInvolucradoTabla();
                GridViewConsultarUsuario.DataBind();
            }
            OcultarColumna();
        }

        public DataTable CargarInvolucradoTabla()
        {
            List<Usuario> listaUsuario = new List<Usuario>();
            listaUsuario = usuario.ConsultartodosTodosUsuarios();
            // Generar la DataTable de la lista de usuario
            DataTable dataTable = new DataTable();
            //Crea las columnas de la tabla en el GridView
            dataTable.Columns.Add("Id", typeof(int));
            dataTable.Columns.Add("Usuario", typeof(string));
            dataTable.Columns.Add("Rol", typeof(string));

            //Se recorre la lista de usuario para asignarle al "DataTable"
            foreach (Usuario usuarios in listaUsuario)
            {
                dataTable.Rows.Add(usuarios.Id, usuarios.Nombre, usuarios.Rol.Nombre);
            }
            // guardamos la lista de usuarios en la variable Session
            Session["listaUsuarios"] = listaUsuario;
            return dataTable;

        }
        // Oculta la columna del id
        public void OcultarColumna()
        {
            GridViewConsultarUsuario.HeaderRow.Cells[0].Visible = false;
            foreach (GridViewRow row in GridViewConsultarUsuario.Rows)
            {
                row.Cells[0].Visible = false;
            }
        }

        protected void GridViewConsultarUsuario_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridViewRow row = GridViewConsultarUsuario.SelectedRow;
            int idElegido = Convert.ToInt32(row.Cells[0].Text);
            listaUser = (List<Usuario>)Session["listaUsuarios"];
            // Recorremos la lista de los usuarios
            foreach (Usuario usuarios in listaUser)
            {
                // verificamos que el ID del usuario elegido sea igual al ID del usuario de la lista de usuarios
                if (usuarios.Id == idElegido)
                { 
                    // Guardamos en una variable session el objeto del tipo usuario                 
                    Session["usuario"] = usuarios;
                    
                }
            }
            // Redireccionamos a la pagina del consultarUsuario
            Response.Redirect("../Usuarios/ConsultarUsuario.aspx");
        }

        protected void GridViewConsultarUsuario_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridViewConsultarUsuario.PageIndex = e.NewPageIndex;
            GridViewConsultarUsuario.DataSource = CargarInvolucradoTabla();
            GridViewConsultarUsuario.DataBind();
            this.OcultarColumna();
        }

       
        
    }
}